package com.slofzx.nuoda.evaluation.version.entity;

import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.slofzx.nuoda.common.entity.BaseEntity;
import com.slofzx.nuoda.evaluation.ref.steretype.ModelExportItemConfig;
import org.apache.ibatis.type.JdbcType;

/**
 * 评价信息(ComputeVersion)实体类
 *
 * @author nuoda
 * @since 2021-11-19 15:55:58
 */
@TableName("eva_compute_version")
public class ComputeVersion extends BaseEntity {
    private static final long serialVersionUID = 314451083939370801L;
    /**
     * 来源版本
     */
    private String sourceId;
    /**
     * 父级版本
     */
    private String parentId;
    /**
     * 任务id
     */
    private String batchId;
    /**
     * 特殊标记
     */
    private String mark;
    /**
     * 名称
     */
    private String name;
    /**
     * 项目ID
     */
    private String projectId;
    /**
     * 评价模型ID
     */
    private String modelId;
    /**
     * 建设期年限
     */
    private int buildYearCount;
    /**
     * 评价开始年份
     */
    private int calculateYearStart;
    /**
     * 评价结束年份
     */
    private int calculateYearEnd;
    /**
     * 备注
     */
    private String remark;
    /**
     * 类型
     */
    private String type;
    /**
     * 基准收益率
     */
    private double baseIrr;
    /**
     * 内部收益率税前
     */
    private double irrBeforeTax;
    /**
     * 内部收益率税后
     */
    private double irrAfterTax;
    /**
     * 投资回收期税前
     */
    private double pbpBeforeTax;
    /**
     * 投资回收期税后
     */
    private double pbpAfterTax;
    /**
     * 财务净现值税前
     */
    private double npvBeforeTax;
    /**
     * 财务净现值税后
     */
    private double npvAfterTax;
    /**
     * 基准平衡油价 人民币
     */
    private double balancePriceYuan;
    /**
     * 基准平衡油价 美元
     */
    private double balancePriceDollar;
    /**
     * 是否截断
     */
    private boolean cutoff;
    /**
     * 基建井数
     */
    @TableField(jdbcType = JdbcType.NUMERIC)
    private Integer infWellCount;

    /**
     * 新建产能
     */
    @TableField(jdbcType = JdbcType.NUMERIC)
    private Double newCapacity;

    /**
     * 净利润
     */
    @TableField(jdbcType = JdbcType.NUMERIC)
    private Double netProfit;
    /**
     * 经济极限年
     */
    private Integer economicLimitYear;

    /**
     * 上报时间
     * 数据库存储需要时时间戳类型，不能是普通的DATE
     */
    private Date reportTime;

    /**
     * 关联版本1
     */
    @TableField("related_1")
    private String related1;
    /**
     * 关联版本2
     */
    @TableField("related_2")
    private String related2;

    /**
     *  计算时间
     */
    private Date computeTime;

    /**
     * 是否拉齐计算
     */
    @TableField(jdbcType = JdbcType.NUMERIC)
    private boolean costPull;
    /**
     * 达标情况
     */
    @TableField(jdbcType = JdbcType.VARCHAR)
    private String passed;
    /**
     * 版本号
     */
    @TableField(jdbcType = JdbcType.NUMERIC)
    private Integer versionNum;

    @TableField(jdbcType = JdbcType.VARCHAR)
    private String paramVersion;

    /**
     * 总投资
     */
    @TableField(jdbcType = JdbcType.NUMERIC)
    private Double totalInvest;
    /**
     * 原油年产量
     */
    @TableField(jdbcType = JdbcType.NUMERIC)
    private Double sumOilOutput;
    /**
     * 水平井日产
     */
    @TableField(jdbcType = JdbcType.NUMERIC)
    private Double horizontalDayOutput;
    /**
     * 直井日产
     */
    @TableField(jdbcType = JdbcType.NUMERIC)
    private Double straightOutput;
    /**
     * 项目日产
     */
    @TableField(jdbcType = JdbcType.NUMERIC)
    private Double projectDayOutput;


    /**
     * 建设投资
     */
    @TableField(jdbcType = JdbcType.NUMERIC)
    private Double constructionInvest;
    /**
     * 单位完全成本(美元/桶)
     */
    private Double unitTotalOperateCostDollar;
    /**
     * 单位操作成本(美元/桶)
     */
    private Double unitOperateCostDollar;

    /**
     * 总完全成本(美元/桶)
     */
    private Double totalOperateCostDollar;
    /**
     * 总操作成本(美元/桶)
     */
    private Double operateCostDollar;

    /**
     * 原油商品量(美元)
     */
    private Double oilCommodityVolumeDollar;
    /**
     * 总完全成本(元/吨)
     */
    private Double unitTotalOperateCost;
    /**
     * 总操作成本(元/吨)
     */
    private Double unitOperateCost;
    /**
     * 基准平衡建设投资
     */
    @TableField(jdbcType = JdbcType.NUMERIC)
    private Double balanceConstructionInvest;
    /**
     * 基准平衡累产油
     */
    @TableField(jdbcType = JdbcType.NUMERIC)
    private Double balanceSumOilOutput;
    /**
     * 基准平衡累产气
     */
    @TableField(jdbcType = JdbcType.NUMERIC)
    private Double balanceSumGasOutput;

    public Double getBalanceConstructionInvest() {
        return balanceConstructionInvest;
    }

    public void setBalanceConstructionInvest(Double balanceConstructionInvest) {
        this.balanceConstructionInvest = balanceConstructionInvest;
    }

    public Double getBalanceSumOilOutput() {
        return balanceSumOilOutput;
    }

    public void setBalanceSumOilOutput(Double balanceSumOilOutput) {
        this.balanceSumOilOutput = balanceSumOilOutput;
    }

    public Double getBalanceSumGasOutput() {
        return balanceSumGasOutput;
    }

    public void setBalanceSumGasOutput(Double balanceSumGasOutput) {
        this.balanceSumGasOutput = balanceSumGasOutput;
    }
    public Double getUnitTotalOperateCost() {
        return unitTotalOperateCost;
    }

    public void setUnitTotalOperateCost(Double unitTotalOperateCost) {
        this.unitTotalOperateCost = unitTotalOperateCost;
    }

    public Double getUnitOperateCost() {
        return unitOperateCost;
    }

    public void setUnitOperateCost(Double unitOperateCost) {
        this.unitOperateCost = unitOperateCost;
    }

    public Double getTotalOperateCostDollar() {
        return totalOperateCostDollar;
    }

    public void setTotalOperateCostDollar(Double totalOperateCostDollar) {
        this.totalOperateCostDollar = totalOperateCostDollar;
    }

    public Double getOperateCostDollar() {
        return operateCostDollar;
    }

    public void setOperateCostDollar(Double operateCostDollar) {
        this.operateCostDollar = operateCostDollar;
    }

    public Double getOilCommodityVolumeDollar() {
        return oilCommodityVolumeDollar;
    }

    public void setOilCommodityVolumeDollar(Double oilCommodityVolumeDollar) {
        this.oilCommodityVolumeDollar = oilCommodityVolumeDollar;
    }

    public Double getUnitTotalOperateCostDollar() {
        return unitTotalOperateCostDollar;
    }

    public void setUnitTotalOperateCostDollar(Double unitTotalOperateCostDollar) {
        this.unitTotalOperateCostDollar = unitTotalOperateCostDollar;
    }

    public Double getUnitOperateCostDollar() {
        return unitOperateCostDollar;
    }

    public void setUnitOperateCostDollar(Double unitOperateCostDollar) {
        this.unitOperateCostDollar = unitOperateCostDollar;
    }

    public Double getConstructionInvest() {
        return constructionInvest;
    }

    public void setConstructionInvest(Double constructionInvest) {
        this.constructionInvest = constructionInvest;
    }

    public Double getHorizontalDayOutput() {
        return horizontalDayOutput;
    }

    public void setHorizontalDayOutput(Double horizontalDayOutput) {
        this.horizontalDayOutput = horizontalDayOutput;
    }

    public Double getStraightOutput() {
        return straightOutput;
    }

    public void setStraightOutput(Double straightOutput) {
        this.straightOutput = straightOutput;
    }

    public Double getProjectDayOutput() {
        return projectDayOutput;
    }

    public void setProjectDayOutput(Double projectDayOutput) {
        this.projectDayOutput = projectDayOutput;
    }

    public Double getSumOilOutput() {
        return sumOilOutput;
    }

    public void setSumOilOutput(Double sumOilOutput) {
        this.sumOilOutput = sumOilOutput;
    }

    public double getBalancePriceYuan() {
        return balancePriceYuan;
    }

    public void setBalancePriceYuan(double balancePriceYuan) {
        this.balancePriceYuan = balancePriceYuan;
    }

    public double getBalancePriceDollar() {
        return balancePriceDollar;
    }

    public void setBalancePriceDollar(double balancePriceDollar) {
        this.balancePriceDollar = balancePriceDollar;
    }

    public String getPassed() {
        return passed;
    }

    public void setPassed(String passed) {
        this.passed = passed;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getProjectId() {
        return projectId;
    }

    public void setProjectId(String projectId) {
        this.projectId = projectId;
    }

    public String getModelId() {
        return modelId;
    }

    public void setModelId(String modelId) {
        this.modelId = modelId;
    }

    public int getBuildYearCount() {
        return buildYearCount;
    }

    public void setBuildYearCount(int buildYearCount) {
        this.buildYearCount = buildYearCount;
    }

    public int getCalculateYearStart() {
        return calculateYearStart;
    }

    public void setCalculateYearStart(int calculateYearStart) {
        this.calculateYearStart = calculateYearStart;
    }

    public int getCalculateYearEnd() {
        return calculateYearEnd;
    }

    public void setCalculateYearEnd(int calculateYearEnd) {
        this.calculateYearEnd = calculateYearEnd;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public double getIrrBeforeTax() {
        return irrBeforeTax;
    }

    public void setIrrBeforeTax(double irrBeforeTax) {
        this.irrBeforeTax = irrBeforeTax;
    }

    public double getIrrAfterTax() {
        return irrAfterTax;
    }

    public void setIrrAfterTax(double irrAfterTax) {
        this.irrAfterTax = irrAfterTax;
    }

    public double getBaseIrr() {
        return baseIrr;
    }

    public void setBaseIrr(double baseIrr) {
        this.baseIrr = baseIrr;
    }

    public double getPbpBeforeTax() {
        return pbpBeforeTax;
    }

    public void setPbpBeforeTax(double pbpBeforeTax) {
        this.pbpBeforeTax = pbpBeforeTax;
    }

    public double getPbpAfterTax() {
        return pbpAfterTax;
    }

    public void setPbpAfterTax(double pbpAfterTax) {
        this.pbpAfterTax = pbpAfterTax;
    }

    public double getNpvBeforeTax() {
        return npvBeforeTax;
    }

    public void setNpvBeforeTax(double npvBeforeTax) {
        this.npvBeforeTax = npvBeforeTax;
    }

    public double getNpvAfterTax() {
        return npvAfterTax;
    }

    public void setNpvAfterTax(double npvAfterTax) {
        this.npvAfterTax = npvAfterTax;
    }

    public boolean isCutoff() {
        return cutoff;
    }

    public void setCutoff(boolean cutoff) {
        this.cutoff = cutoff;
    }

    public Date getReportTime() {
        return reportTime;
    }

    public void setReportTime(Date reportTime) {
        this.reportTime = reportTime;
    }

    public String getParentId() {
        return parentId;
    }

    public void setParentId(String parentId) {
        this.parentId = parentId;
    }

    public String getMark() {
        return mark;
    }

    public void setMark(String mark) {
        this.mark = mark;
    }

    public Integer getEconomicLimitYear() {
        return economicLimitYear;
    }

    public void setEconomicLimitYear(Integer economicLimitYear) {
        this.economicLimitYear = economicLimitYear;
    }

    public String getSourceId() {
        return sourceId;
    }

    public void setSourceId(String sourceId) {
        this.sourceId = sourceId;
    }

    public String getRelated1() {
        return related1;
    }

    public void setRelated1(String related1) {
        this.related1 = related1;
    }

    public String getRelated2() {
        return related2;
    }

    public void setRelated2(String related2) {
        this.related2 = related2;
    }

    public Date getComputeTime() {
        return computeTime;
    }

    public void setComputeTime(Date computeTime) {
        this.computeTime = computeTime;
    }

    public boolean isCostPull() {
        return costPull;
    }

    public void setCostPull(boolean costPull) {
        this.costPull = costPull;
    }

    public Integer getVersionNum() {
        return versionNum;
    }

    public void setVersionNum(Integer versionNum) {
        this.versionNum = versionNum;
    }

    public String getParamVersion() {
        return paramVersion;
    }

    public void setParamVersion(String paramVersion) {
        this.paramVersion = paramVersion;
    }

    public String getBatchId() {
        return batchId;
    }

    public void setBatchId(String batchId) {
        this.batchId = batchId;
    }

    public Double getTotalInvest() {
        return totalInvest;
    }

    public void setTotalInvest(Double totalInvest) {
        this.totalInvest = totalInvest;
    }

    public Integer getInfWellCount() {
        return infWellCount;
    }

    public void setInfWellCount(Integer infWellCount) {
        this.infWellCount = infWellCount;
    }

    public Double getNewCapacity() {
        return newCapacity;
    }

    public void setNewCapacity(Double newCapacity) {
        this.newCapacity = newCapacity;
    }

    public Double getNetProfit() {
        return netProfit;
    }

    public void setNetProfit(Double netProfit) {
        this.netProfit = netProfit;
    }

    @Override
    public String toString() {
        return "ComputeVersion{" +
                "sourceId='" + sourceId + '\'' +
                ", parentId='" + parentId + '\'' +
                ", batchId='" + batchId + '\'' +
                ", mark='" + mark + '\'' +
                ", name='" + name + '\'' +
                ", projectId='" + projectId + '\'' +
                ", modelId='" + modelId + '\'' +
                ", buildYearCount=" + buildYearCount +
                ", calculateYearStart=" + calculateYearStart +
                ", calculateYearEnd=" + calculateYearEnd +
                ", remark='" + remark + '\'' +
                ", type='" + type + '\'' +
                ", irrBeforeTax=" + irrBeforeTax +
                ", irrAfterTax=" + irrAfterTax +
                ", pbpBeforeTax=" + pbpBeforeTax +
                ", pbpAfterTax=" + pbpAfterTax +
                ", npvBeforeTax=" + npvBeforeTax +
                ", npvAfterTax=" + npvAfterTax +
                ", cutoff=" + cutoff +
                ", economicLimitYear=" + economicLimitYear +
                ", reportTime=" + reportTime +
                ", related1='" + related1 + '\'' +
                ", related2='" + related2 + '\'' +
                ", computeTime=" + computeTime +
                ", costPull=" + costPull +
                ", versionNum=" + versionNum +
                ", paramVersion='" + paramVersion + '\'' +
                ", totalInvest=" + totalInvest +
                ", id='" + id + '\'' +
                ", createUser='" + createUser + '\'' +
                ", createTime=" + createTime +
                '}';
    }
}
